package com.tianji.promotion.constants;

/**
 * @author Covey
 */
public interface PromotionConstants {

    String COUPON_CODE_SERIAL_KEY = "coupon:code:serial";

    String COUPON_RANGE_KEY = "coupon:code:range";

    String COUPON_CODE_MAP_KEY = "coupon:code:map";

    /**
     * 优惠券的信息缓存 hash
     */
    String COUPON_CACHE_KEY_PREFIX = "prs:coupon:";

    /**
     * 优惠券被各个用户领取的数量缓存 hash
     */
    String USER_COUPON_CACHE_KEY_PREFIX = "prs:user:coupon:";

    /**
     * 领取优惠券 LUA 脚本错误消息
     * 索引对应 LUA 脚本返回的错误码
     */
    String[] RECEIVE_COUPON_ERROR_MSG = {
            "优惠券不存在",           // 错误码 1: exists == 0
            "优惠券库存不足",         // 错误码 2: totalNum <= 0
            "活动已结束",            // 错误码 3: currentTime > issueEndTime
            "超出每人限领数量"        // 错误码 4: userLimit < currentCount
    };

    /**
     * 兑换优惠券 LUA 脚本错误消息
     * 索引对应 LUA 脚本返回的错误码
     */
    String[] EXCHANGE_COUPON_ERROR_MSG = {
            "兑换码已被兑换",         // 错误码 1: GETBIT == 1
            "兑换码不存在",           // 错误码 2: ZRANGEBYSCORE 结果为空
            "优惠券不存在",           // 错误码 3: EXISTS _k1 == 0
            "活动已结束",            // 错误码 4: currentTime > issueEndTime
            "超出每人限领数量"        // 错误码 5: userLimit < currentCount
    };
}
